﻿/*
 * altivario.h
 *
 * Created: 2013-08-23 오전 11:42:26
 *  Author: akkdong
 */ 


#ifndef ALTIVARIO_H_
#define ALTIVARIO_H_

#include "kalman.h"

///////////////////////////////////////////////////////////////////////////////////////
//

typedef struct 
{
	//
	double seaLevelPressure;
	
	//
	double rawPressure;
	double rawAltitude;
	
	double dampedAltitude;
	double kalmanAltitude;
	
	double kalmanVario;
	double dampedVario;
	
	KalmanFilter kalman;
	
	int dampedStarted;
	
	double positionNoise;
	double accelerationNoise;
	double altDamp;
	double varDamp;
	
} AltiVario;



///////////////////////////////////////////////////////////////////////////////////////
//

void		altivario_init(AltiVario * altivario, double seaLevelPressure, double positionNoise, double accNoise, double dampFactor);
double		altivario_addPressure(AltiVario * altivario, double pressure, double dt);
double		altivario_setAltitude(AltiVario * altivario, double alt);
void		altivario_setSealLevelPressure(AltiVario * altivario, double seaLevelPressure);

double		altivario_getRawPressure(AltiVario * altivario);
double		altivario_getRawAltitude(AltiVario * altivario);

double		altivario_getAltitude(AltiVario * altivario);
double		altivario_getDampedAltitude(AltiVario * altivario);
double		altivario_getVario(AltiVario * altivario);
double		altivario_getDampedVario(AltiVario * altivario);


#endif /* ALTIVARIO_H_ */